export interface IncomingRequestCfProperties {
  asn: number
  asOrganization: string
  botManagement?: BotManagement
  clientAcceptEncoding?: string
  colo: string
  country?: string
  isEUCountry?: string
  httpProtocol: string
  requestPriority?: string
  tlsCipher: string
  tlsClientAuth: TlsClientAuth
  tlsVersion: string
  city?: string
  continent?: string
  latitude?: string
  longitude?: string
  postalCode?: string
  metroCode?: string
  region?: string
  regionCode?: string
  timezone: string
}

export interface BotManagement {
  score: number
  verifiedBot: boolean
  staticResource: string
  ja3Hash: string
  js_score: '' // always blank string https://developers.cloudflare.com/bots/reference/bot-management-variables
}

export interface TlsClientAuth {
  certFingerprintSHA1: string
  certFingerprintSHA256: string
  certIssuerDN: string
  certIssuerDNLegacy: string
  certIssuerDNRFC2253: string
  certIssuerSKI: string
  certIssuerSerial: string
  certNotAfter: string
  certNotBefore: string
  certPresented: string
  certRevoked: string
  certSKI: string
  certSerial: string
  certSubjectDN: string
  certSubjectDNLegacy: string
  certSubjectDNRFC2253: string
  certVerified: string
}